package com.example.eightapi.controller;

import com.example.eightapi.pojo.users;
 // 注意服务接口名的首字母大写
import com.example.eightapi.service.loginService;
import com.example.eightapi.util.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/path") // 为控制器添加一个基础路径，使API更加结构化
public class loginController { // 控制器类名通常使用大写字母开头

    @Autowired
    private loginService loginService;


    @PostMapping("/login")
    public ResponseResult<String> login(@RequestParam String username, @RequestParam String password) {
        try {
            boolean s = loginService.authenticate(username, password); // 假设服务层有这样一个方法
            if (s) {
                return new ResponseResult<>("200", "登录成功", null);
            } else {
                return new ResponseResult<>("401", "用户名或密码错误", null);
            }
        } catch (Exception e) {
            return new ResponseResult<>("500", "服务器错误: " + e.getMessage(), null);
        }
    }

    @PostMapping("/register")
    public ResponseResult<String> register(@RequestBody users user) {
        // 验证用户输入
        if (user.getUsername() == null || user.getUsername().isEmpty() ||
                user.getPassword() == null || user.getPassword().isEmpty()) {
            return new ResponseResult<>("400", "用户名和密码不能为空", null);
        }

        // 调用服务层进行注册
        try {
            loginService.register(user); // 使用已注入的服务实例
            return new ResponseResult<>("200", "注册成功", null);
        } catch (Exception e) {
            return new ResponseResult<>("500", "注册失败: " + e.getMessage(), null);
        }
    }
}